1. Field of the Invention
The present invention relates generally to a storage sub-system connected to a host computer, and more particularly to an external storage sub-system having a fast data transfer capability for multiple sequential data reading.
2. Description of the Related Art
In a conventional external storage sub-system that restores data using redundant data, if data read from a data recording medium to a cache memory (“staging”) has failed, reliability of the data read can be improved by thereafter staging redundant data and other data required to restore the data, followed by the actual restoring of the data and transfer to a host unit. The entire restoring procedure, however, requires additional time over that of a normal staging procedure.
For example, the response time for a normal staging can be expressed as follows:Response time in normal staging=concerned data staging time+data transfer time+other processing time.
By comparison, when staging has failed, the response time, including the restoring of data, may be expressed as follows:Response time in failed staging=concerned data staging time+redundant data staging time+data transfer+data restoring time+other processing time.
Therefore, the response time in failed staging is longer than that in normal staging.
A RAID (Redundant Array of Inexpensive Disks) system is a known example of an external storage sub-system which restores data by using redundant data. The conventional RAID system reads data from external storage until the occurrence of a failure, which is determined by a timer timing out (that is, a threshold time period elapses before the end of which the required data has not been read from the external storage). When a failure occurs, the conventional RAID system executes a redundant data restoration process in which an entire “stripe” constituted by redundant data stored in parallel storage units, combined with parity data, is read and used to recreate the data that failed to be read in the primary data read. The RAID system works effectively for recovering data that was not properly read, but additional time is required to perform the data restoration. During the restoration time period, the data read operation is interrupted.
A disk array device which can restore data and store it in a spare recording medium with no processing delay from a host unit by properly recognizing the necessity of restoring the data is disclosed in Japanese Patent Unexamined Publication No. 7-200191. However, this disk array device does not consider to speed up input/output processing when staging has failed.
Another feature of the conventional external storage sub-system is the capability to pre-read data in order to speed up reading of sequential data, such as in video-on-demand (VOD). By transferring data from the low-speed recording medium to the higher-speed cache memory before the host unit demands the data (pre-read processing), data demand from the host unit is performed by simply transferring data from the high-speed cache memory. Therefore, faster processing is possible.
In the conventional external storage sub-system, in the case of a single sequential read demand, pre-read processing is executed when the system judges that the sequential read demand must be received from the host unit, which judgment is made based on the receipt of read demands to successive data or several read demands to the same data area. For multiple sequential read demands, plural information sets required for the sequential decision are provided, and pre-read processing is executed in “multiple mode” to obtain high-speed processing. However, the conventional art has not considered to reduce the processing time required for the sequential decision, or to eliminate the limit on the degree of multiple pre-read processings required by the number of information sets provided for the sequential decision. The limit on the degree of multiple pre-read processings is typically one logic unit, or the size of the memory used for remembering the sequential addresses in an information set.
With the recent emphasis on an information-oriented society, there has been a concurrent increase in the requirement for dealing with multimedia data in storage systems. Particularly, in systems that deal with image and sound data, such as a video-on-demand system, or in the transfer of image/sound data over the Internet, a server typically reads out a large amount of image/sound data from a data storage device, and supplies the data to one or more clients. Delay in the reading of data, however, causes disruption and delay of the image/sound data delivery. Therefore, the storage devices must be optimized to assure minimum response time. However, prior systems have emphasized memory efficiency over response time, particularly in prior RAID systems, due to the prohibitive cost of expanding memory capacity in large-capacity storage sub-systems.
Moreover, when the image/sound data to be transferred is generally sequential data, it is desirable for the data to be transferred as seamlessly as possible, with the capability to transfer the data in either the forward or backward directions, or in both the forward and backward directions. Furthermore, in a network environment, it would be desirable for such systems to permit frequent access by many clients simultaneously, which renders indispensable the execution of many sequential read accesses at the same time.
However, in the conventional external storage sub-system, a single sequential read demand has often been processed by first starting pre-read processing of successive data when several data read demands to successive data or to the same data area have been received, or, in the case of multiple sequential read demands, by providing plural information sets required for the sequential decision, and executing multiple pre-reading. However, the degree of multiple pre-reading is restricted to the number of information sets provided, and performance is deteriorated when the limit is exceeded. Performance is also deteriorated by the amount of overhead required for sequential decision processing, according to the conventional systems.